The present disclosure relates generally to application development, and more particularly to techniques that automate the development of graphical user interfaces (GUIs) for applications based upon application requirements information for the applications.
The visual appearance and interactivity provided by an application plays a critical role in whether or not the application is accepted by its users and thus to the overall success or failure of the application. As a result, a significant amount of time and effort is spent in designing and developing graphical user interfaces (GUIs) for applications. Further, with the proliferation of different types of computing devices, such as smart phones, tablets, laptops, and the like, an application typically has to have different GUIs suited for use on different computing devices. This dramatically increases the number of GUIs that have to be developed for an application.
The design of the GUI for an application is typically done early on in the requirements gathering phase in the development of an application. The GUI for the application may include one or more GUI screens or windows, with each screen comprising one or more GUI components. User experience (UX) designers are commonly used to determine the requirements of each individual screen in the GUI of an application. Images of GUI layouts are typically generated that visually represent how the screens in the application GUI are intended to appear. A requirements document is generally drafted that describes the requirements for the application including GUI requirements. The GUI requirements may be represented by mockup images representing the look-and-feel of the screens. Later on in the development lifecycle of the application, developers use these GUI images and requirements descriptions to implement the GUI. For example, coders write code for implementing the various screens included in the application GUI and adding functionality to the screens, as described in the requirements document.
The progression from a set of requirement GUI images to a full GUI implementation however involves a substantial amount of manual effort on behalf of the developers requiring not only a great deal of time but also significant human resources. This makes developing an application very time consuming and expensive.